﻿// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证（版本 2.0）进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动！任何基于本项目二次开发而产生的一切法律纠纷和责任，我们不承担任何责任！

namespace Admin.NET.Application;

/// <summary>
/// 开完工统计
/// </summary>
public class PlanStartStatisticsDto
{
    /// <summary>
    /// 统计月份（格式：yyyy-MM）
    /// </summary>
    public string Month { get; set; } = string.Empty;
    /// <summary>
    /// 计划开工总数
    /// </summary>
    public int PlanStartTotal { get; set; }
    /// <summary>
    /// 计划完工总数
    /// </summary>
    public int PlanEndTotal { get; set; }

    /// <summary>
    /// 实际开工总数
    /// </summary>
    public int ActualStartTotal { get; set; }
    /// <summary>
    /// 实际开工总数
    /// </summary>
    public int ActualEndTotal { get; set; }
    /// <summary>
    /// 开工率
    /// </summary>
    public decimal StartRate { get; set; }
    /// <summary>
    /// 完工率
    /// </summary>
    public decimal EndRate { get; set; }
}














/// <summary>
/// 更新信息分析输出DTO
/// </summary>
public class UpdateAnalysisOutput
{
    /// <summary>
    /// 作业区ID
    /// </summary>
    public long? WorkAreaId { get; set; }
    
    /// <summary>
    /// 作业区名称
    /// </summary>
    public string WorkAreaName { get; set; } = string.Empty;
    
    /// <summary>
    /// 总记录数
    /// </summary>
    public int TotalCount { get; set; }
    
    /// <summary>
    /// 最后创建时间
    /// </summary>
    public DateTime? LastCreateTime { get; set; }
    
    /// <summary>
    /// 最后更新时间
    /// </summary>
    public DateTime? LastUpdateTime { get; set; }
    
    /// <summary>
    /// 最后更新人
    /// </summary>
    public string? LastUpdateUserName { get; set; }
    
    /// <summary>
    /// 今日更新状态 (已更新/未更新)
    /// </summary>
    public string TodayUpdateStatus { get; set; } = string.Empty;
}

/// <summary>
/// 更新分析输入参数
/// </summary>
public class UpdateAnalysisInput
{
    /// <summary>
    /// 筛选月份，格式如 '2025-07'
    /// </summary>
    public string workTime { get; set; }
    
    /// <summary>
    /// 分类筛选
    /// </summary>
    public long? ClassName { get; set; }
    
    /// <summary>
    /// 区域筛选
    /// </summary>
    public long? WorkAreaId { get; set; }
}

